import Vue from 'vue'
import Vuex from 'vuex'
import { user } from './modules/user'
import { permission } from './modules/permission'
// import { auth } from './modules/auth'
import { goods } from '@/pages/goods/store'
import { language } from './modules/language'
import { table } from '@/components/BaseTable/store'
// import { login } from '@/pages/login/store'
import { getters } from './getter'
// vuex 模块化
/***
 *
 * 一、vuex的基本属性：
 * state: {} 数据仓库 （ /setter getter/ ）
 * mutations: {} // 逻辑操作的地方 同步操作代码的地方  reducer { return }
 *
 * actions: { 提交给mutaion  } // 操作异步代码的地方    thunk sagas
 *  1. 提交给mutaions --> mutaion获取到，更新state ---> 更新了模版
 *  2. return new Promise() ---> promise解决异步 返回给页面了： 跳转路由；
 *
 * getters: {} // 计算属性：（重复计算逻辑，放在这儿）获取所有state的值；
 *  1. mutaion处理逻辑
 *  2. 获取state  state就是mutaion处理逻辑之后的结果，获取的及时mutaion的结果
 *
 * 二、vuex的模块化思想
 *
 * 1. modules: { 模块 }
 * 2. 莫模块：{ state: muations: actions: getters }
 *
 */

Vue.use(Vuex)

export default new Vuex.Store({
  getters, // 代码规范
  modules: {
    user,
    permission,
    // auth,
    goods,
    language,
    table
    // login
  }
})
